নির্ভরতা ব্যবস্থাপনা কি?
নির্ভরতা ব্যবস্থাপনায় আপনার অ্যাপ্লিকেশন নির্ভর করে এমন বহিরাগত প্যাকেজগুলি ট্র্যাক করা, ইনস্টল করা, আপডেট করা এবং অপসারণ করা জড়িত।
এটি আপনার অ্যাপ্লিকেশনগুলিকে সময়ের সাথে স্থিতিশীল, সুরক্ষিত এবং রক্ষণাবেক্ষণযোগ্য হতে সাহায্য করে।
npm (Node Package Manager)
Node.js
Yarn
বিকল্প প্যাকেজ ম্যানেজার
pnpm
আরেকটি জনপ্রিয় বিকল্প
Node.js :
- নির্ভরতা ঘোষণা করতে package.json ফাইল
- নির্ভরশীল সংস্করণের জন্য ফাইল লক করুন (package-lock.json বা yarn.lock)
- প্যাকেজ ম্যানেজার প্যাকেজগুলি ইনস্টল, আপডেট এবং অপসারণের নির্দেশ দেয়
- দুর্বলতা সনাক্ত এবং ঠিক করার জন্য নিরাপত্তা সরঞ্জাম
শব্দার্থিক সংস্করণ ব্যবস্থাপনা বোঝা
Node.js (SemVer) , - : ..
গুরুত্বপূর্ণ
বেমানান API পরিবর্তনের জন্য উত্থাপিত
ছোট
নতুন বৈশিষ্ট্যগুলির জন্য পিছনের সামঞ্জস্য উন্নত করা হয়েছে৷
প্যাচ
বাগ ফিক্সের জন্য পিছনের সামঞ্জস্যতা উন্নত করা হয়েছে
| প্রতীক | উদাহরণ | অর্থ |
|---|---|---|
| ^ | ^2.8.1 | যেকোনো, শুধুমাত্র প্রধান সংস্করণ 2.x.x (2.8.1 বা উচ্চতর) এর সাথে সামঞ্জস্যপূর্ণ হওয়া উচিত |
| ~ | ~2.8.1 | যেকোনো, main.minor শুধুমাত্র 2.8.x (2.8.1 বা উচ্চতর) মেলে |
| * | * | যেকোনো সংস্করণ (উৎপাদনের জন্য প্রস্তাবিত নয়) |
| >= | >=2.8.1 | সংস্করণ 2.8.1 বা উচ্চতর সংস্করণ |
| কিছুই না | 2.8.1 | শুধুমাত্র সঠিক সংস্করণ |
উদাহরণ: বিভিন্ন সংস্করণের স্পেসিফিকেশন
{
"dependencies": {
"express": "^2.8.1", // Any 2.x.x version (2.8.1 or higher)
"lodash": "~2.8.1", // Any 2.8.x version (2.8.1 or higher)
"moment": "2.8.1", // Exactly version 2.8.1
"axios": ">=2.8.1", // Version 2.8.1 or any higher version
"debug": "2.x" // Any version starting with 2
}
}
নির্ভরতা প্রতিষ্ঠা করা
একটি Node.js প্রকল্পে নির্ভরতা ইনস্টল করার বিভিন্ন উপায় রয়েছে:
সমস্ত নির্ভরতা ইনস্টল করা হচ্ছে
npm install
এই কমান্ডটি package.json ফাইলটি পড়ে এবং সেখানে তালিকাভুক্ত সমস্ত নির্ভরতা ইনস্টল করে।
একটি নির্দিষ্ট প্যাকেজ ইনস্টল করা হচ্ছে
npm install express
এটি প্যাকেজের সর্বশেষ সংস্করণটি ইনস্টল করে এবং এটিকে আপনার package.json-এর নির্ভরতাগুলিতে যুক্ত করে।
একটি নির্দিষ্ট সংস্করণ ইনস্টল করা হচ্ছে
npm install express@4.17.1
package.json
npm install express --no-save
গ্লোবাল ইনস্টলেশন
npm install -g nodemon
গ্লোবাল প্যাকেজগুলি সিস্টেম-ব্যাপী ইনস্টল করা হয়, প্রকল্পের node_modules ডিরেক্টরিতে নয়।
নির্ভরতার প্রকারভেদ
Node.js , :
সাধারণ পক্ষপাতিত্ব
npm install express --save
# or simply
npm install express
এই প্যাকেজ আপনার অ্যাপ্লিকেশন উত্পাদন চালানোর জন্য প্রয়োজন.
নির্ভরতা তৈরি করুন
npm install jest --save-dev
# or
npm install jest -D
এগুলি হল প্যাকেজ, টেস্ট স্ট্রাকচার বা নির্মাণ সরঞ্জাম যা শুধুমাত্র স্থানীয় উন্নয়ন এবং পরীক্ষার জন্য প্রয়োজন।
পিয়ার নির্ভরতা
{
"name": "my-plugin",
"version": "1.0.0",
"peerDependencies": {
"react": "^17.0.0"
}
}
অন্য প্যাকেজগুলির সাথে সামঞ্জস্যতা নির্দেশ করার জন্য package.json-এ নির্দিষ্ট করা হয়েছে, আসলে সেগুলি অন্তর্ভুক্ত না করে।
ঐচ্ছিক নির্ভরতা
npm install fancy-feature --save-optional
# or
npm install fancy-feature -O
এই প্যাকেজগুলি কার্যকারিতা উন্নত করে কিন্তু কাজ করার জন্য প্রধান অ্যাপ্লিকেশনটির প্রয়োজন হয় না।
পরামর্শ:
উৎপাদনে প্রয়োজনীয় প্যাকেজগুলির জন্য নির্ভরতা ব্যবহার করুন, শুধুমাত্র বিকাশ বা পরীক্ষার জন্য প্রয়োজনীয় প্যাকেজগুলির জন্য devDependencies ব্যবহার করুন।
প্যাকেজ লক ফাইল
লক ফাইলগুলি প্রতিটি প্যাকেজের সঠিক সংস্করণ এবং এর নির্ভরতা রেকর্ড করে বিভিন্ন পরিবেশে সামঞ্জস্যপূর্ণ ইনস্টলেশন নিশ্চিত করে।
package-lock.json (npm)
এই ফাইলটি স্বয়ংক্রিয়ভাবে তৈরি হয় যখন npm node_modules ট্রি বা package.json পরিবর্তন করে।
{
"name": "my-app",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"node_modules/express": {
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1"
}
}
}
}
yarn.lock (Yarn)
সুতার লক ফাইল একই উদ্দেশ্যে কাজ করে কিন্তু একটি ভিন্ন বিন্যাস আছে।
গুরুত্বপূর্ণ:
আপনার দল এবং সম্প্রসারণ পরিবেশে সামঞ্জস্যপূর্ণ ইনস্টলেশন নিশ্চিত করতে সর্বদা আপনার লক ফাইলগুলিকে সংস্করণ নিয়ন্ত্রণে প্রতিশ্রুতিবদ্ধ করুন।
নির্ভরতা আপডেট করা হচ্ছে
মেয়াদোত্তীর্ণ প্যাকেজ চেক করুন
npm outdated
নির্দিষ্ট প্যাকেজ আপডেট করুন
npm update express
সমস্ত প্যাকেজ আপডেট করুন
npm update
npm আপডেট করা হচ্ছে
npm install -g npm@latest
npm-চেক-আপডেট ব্যবহার করে
আপডেটের উপর আরো নিয়ন্ত্রণের জন্য, আপনি npm-check-updates প্যাকেজ ব্যবহার করতে পারেন:
# Install npm-check-updates globally
npm install -g npm-check-updates
# Check for updates
ncu
# Update package.json
ncu -u
# Install updated packages
npm install
নিরাপত্তা এবং অডিটিং
আপনার পক্ষপাত অডিট করুন
npm audit
নিরাপত্তা দুর্বলতা ঠিক করুন
npm audit fix
সমস্ত সমস্যা সমাধান করুন (সতর্কতার সাথে ব্যবহার করুন)
npm audit fix --force
পরিচিত দুর্বলতা জন্য পরীক্ষা করুন
npm audit
# Or using npx with the 'audit' package
npx audit
সর্বোত্তম অনুশীলন
সাধারণ সমস্যার সমাধান
npm ক্যাশে সাফ করা হচ্ছে
npm cache clean --force
নোড_মডিউল মুছে ফেলা এবং পুনরায় ইনস্টল করা হচ্ছে
rm -rf node_modules
rm package-lock.json
npm install
পিয়ার-টু-পিয়ার সমস্যার জন্য পরীক্ষা করে
npm ls
ভাঙা নির্ভরতা ঠিক করা
npm rebuild
সারাংশ
একটি সুস্থ Node.js প্রকল্প বজায় রাখার জন্য কার্যকর নির্ভরতা ব্যবস্থাপনা গুরুত্বপূর্ণ।
নিরাপত্তা
নিয়মিত অডিট এবং আপডেট
ধারাবাহিকতা
সঠিক সংস্করণ নিয়ন্ত্রণ এবং ফাইল লক
রক্ষণাবেক্ষণ
প্যাকেজ প্রকার এবং সর্বোত্তম অনুশীলন
আপডেট
স্বয়ংক্রিয় আপডেট সরঞ্জাম
মূল পয়েন্ট:
- নির্ভরতা ব্যবস্থাপনা একটি সুস্থ Node.js প্রকল্পের জন্য গুরুত্বপূর্ণ
- শব্দার্থিক সংস্করণ ব্যবস্থাপনা বুঝুন
- বিভিন্ন ধরনের নির্ভরতা ব্যবহার করুন
- লক ফাইলগুলিকে সর্বদা সংস্করণ নিয়ন্ত্রণে রাখুন
- নিরাপত্তা দুর্বলতার জন্য নিয়মিতভাবে আপনার নির্ভরতা অডিট করুন
অনুশীলন করুন
সঠিক ক্ষেত্রের নাম নির্বাচন করুন।
package.json-এ নির্ভরতা তৈরি করুন______নীচে তালিকাভুক্ত করা হয়.